home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / basic / vudu3p.zip / VUDU.DOC < prev    next >
Text File  |  1992-06-07  |  64KB  |  1,915 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.                                V U D U   W I N D O W S
  22.                                     Version 3.01
  23.  
  24.                 User Interface Tools for MS QuickBASIC and BASIC PDS
  25.                               Created By Binary Systems
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.                           VUDU Utilities and Documentation
  56.             Copyright (c) 1991,1992 Binary Systems.  All Rights Reserved.
  57.                  QuickBASIC and BASIC PDS are registered trademarks
  58.                               of Microsoft Corporation
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.           VUDU 3.01                                                  Page 1
  72.  
  73.  
  74.                                   TABLE OF CONTENTS
  75.  
  76.           _____Contents______________________________________________
  77.           _______________________________________________________Page
  78.  
  79.                Table of Contents . . . . . . . . . . . . . . . .  1
  80.                Packing List  . . . . . . . . . . . . . . . . . .  2
  81.                Installing Vudu Libraries . . . . . . . . . . . .  2
  82.                Developing A Program With VUDU  . . . . . . . . .  2
  83.                VUDU's Video Requirements . . . . . . . . . . . .  4
  84.                Globals . . . . . . . . . . . . . . . . . . . . .  4
  85.  
  86.                ATTRIB Function . . . . . . . . . . . . . . . . .  5
  87.                BARMENU Function  . . . . . . . . . . . . . . . .  5
  88.                BRIDGE Statement  . . . . . . . . . . . . . . . .  7
  89.                CLICK Function  . . . . . . . . . . . . . . . . .  7
  90.                CM Function . . . . . . . . . . . . . . . . . . .  8
  91.                COLMON Statement  . . . . . . . . . . . . . . . .  8
  92.                DATIN Function  . . . . . . . . . . . . . . . . .  9
  93.                DEFBAR Statement  . . . . . . . . . . . . . . . .  9
  94.                DEFWIN Statement  . . . . . . . . . . . . . . . . 10
  95.                FLUSHKEY Statement  . . . . . . . . . . . . . . . 11
  96.                GETCH Function  . . . . . . . . . . . . . . . . . 11
  97.                HILITE/HILITV Statements  . . . . . . . . . . . . 12
  98.                INFIELD Function  . . . . . . . . . . . . . . . . 13
  99.                ISMOUSE Function  . . . . . . . . . . . . . . . . 14
  100.                MAKEMENU Function . . . . . . . . . . . . . . . . 14
  101.                MESSAGE Function  . . . . . . . . . . . . . . . . 15
  102.                MONOVID Function  . . . . . . . . . . . . . . . . 16
  103.                MOUSEAREA Statement . . . . . . . . . . . . . . . 16
  104.                MOUSEOFF Statement  . . . . . . . . . . . . . . . 17
  105.                MOUSEON Statement . . . . . . . . . . . . . . . . 17
  106.                MOUSEPOLL Function  . . . . . . . . . . . . . . . 17
  107.                MOUSEXY Statement . . . . . . . . . . . . . . . . 18
  108.                OPENWIN Statement . . . . . . . . . . . . . . . . 18
  109.                PRINTS/PRINTV Statements  . . . . . . . . . . . . 19
  110.                RESCREEN Statement  . . . . . . . . . . . . . . . 19
  111.                RESWIN Statement  . . . . . . . . . . . . . . . . 20
  112.                SAVSCREEN Statement . . . . . . . . . . . . . . . 20
  113.                SAVWIN Statement  . . . . . . . . . . . . . . . . 21
  114.                SCROLL Statement  . . . . . . . . . . . . . . . . 21
  115.                SCROLLMENU Function . . . . . . . . . . . . . . . 22
  116.                SETBAR Statement  . . . . . . . . . . . . . . . . 22
  117.                SETMOUSE Statement  . . . . . . . . . . . . . . . 23
  118.                VCLS Statement  . . . . . . . . . . . . . . . . . 23
  119.                VCOLOR Statement  . . . . . . . . . . . . . . . . 24
  120.                VIDCARD Function  . . . . . . . . . . . . . . . . 24
  121.                VINIT Statement . . . . . . . . . . . . . . . . . 25
  122.                VSLEEP Statement  . . . . . . . . . . . . . . . . 25
  123.  
  124.                Declared Constants  . . . . . . . . . . . . . . . 26
  125.                Global Variables  . . . . . . . . . . . . . . . . 27
  126.                Monochrome Reference Chart  . . . . . . . . . . . 28
  127.  
  128.           ___________________________________________________________
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.           VUDU 3.01                                                  Page 2
  138.  
  139.  
  140.           _________________________________________________________________
  141.                                     PACKING LIST
  142.           _________________________________________________________________
  143.  
  144.                             Contents of ShareWare Version
  145.                       (Also included with registered version):
  146.  
  147.                       README     - Quick Information File
  148.                       VUDU.DOC   - Documentation. This file
  149.                       VUDEMO.EXE - Executable Demo
  150.                       VUDEMO.BAS - Demo source code
  151.                       VUDU.QLB   - Quick Library
  152.                       VUDU.INC   - Header file
  153.  
  154.  
  155.                        Additional Contents of Registered VUDU Disk
  156.  
  157.               VUDU.LIB    - Stand alone library for creating executable
  158.                             programs (Please do not share this file)
  159.               SOURCE.EXE  - Archived BASIC source code.
  160.               COMPILE.DOC - Short document on recompiling the procedures.
  161.  
  162.  
  163.           _________________________________________________________________
  164.                               INSTALLING VUDU LIBRARIES
  165.           _________________________________________________________________
  166.  
  167.           If  you are developing QB  programs on a hard  drive or a network
  168.           environment,  simply copy all  the programs which  came with your
  169.           VUDU  package into your BASIC library directory.  If you have set
  170.           up  a different directory for  quick libraries, the file VUDU.QLB
  171.           would go there. I recommend keeping all libraries within the same
  172.           directory as the QB.EXE and BC.EXE.
  173.  
  174.           When  developing on a dual floppy system, the trick is to specify
  175.           the drive before all file names when compiling. Whichever  system
  176.           you  use, always  make a backup  disk before you  start using the
  177.           libraries.
  178.  
  179.  
  180.           _________________________________________________________________
  181.                            DEVELOPING A PROGRAM WITH VUDU
  182.           _________________________________________________________________
  183.  
  184.           Follow  these steps  to create a  program using  the VUDU command
  185.           library from within the QuickBASIC environment:
  186.  
  187.               1.   Invoke QuickBASIC using '/L' option to load the VUDU.QBL
  188.                   quick library.  The command line to do this is:
  189.  
  190.                                   QB /L VUDU [program_name]
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.           VUDU 3.01                                                  Page 3
  204.  
  205.  
  206.               2.  With  your program loaded into QuickBASIC,  choose  'Make
  207.                   EXE  file'  from the 'Run' menu.  Flag 'Stand  Alone  EXE
  208.                   File'  at the submenu.  Be sure you have  $INCLUDEed  the
  209.                   file VUDU.INC which is provided with the VUDU package.
  210.  
  211.               3.  Before  any  executable  statements  call  the  statement
  212.                   VINIT.   This  initializes the global  variables to their
  213.                   default  values.   You may call  VINIT again  at any time
  214.                   within your program to reinitialize the globals.
  215.  
  216.  
  217.           IMPORTANT:  Any program  calling procedures  in the  VUDU library
  218.           requires  the  statement  "REM $INCLUDE:  'VUDU.INC'"  before any
  219.           executable  statements.   This is  the header  file declaring the
  220.           global constants and the external procedures.
  221.  
  222.           The  VUDU.QLB is included  with both versions  of VUDU windows to
  223.           allow  development of a program using VUDU within the interactive
  224.           environment.    To  invoke  QuickBASIC and  load  the  VUDU Quick
  225.           Library type:
  226.                               QB /L VUDU [program name]
  227.  
  228.           Once  you  have  developed your  program  within  the interactive
  229.           editor,  you  may create  an  executable file  by  compiling your
  230.           program   according  to  the   instructions  in  your  QuickBASIC
  231.           documentation and linking the object with VUDU.LIB.
  232.  
  233.           IMPORTANT:   If  you are compiling  VUDU programs  with BASIC PDS
  234.           then you must compile using BC's far string option (/Fs).
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.           VUDU 3.01                                                  Page 4
  270.  
  271.  
  272.           _________________________________________________________________
  273.                               VUDU's VIDEO REQUIREMENTS
  274.           _________________________________________________________________
  275.  
  276.           The  video procedures  within  the VUDU library are for use in 80
  277.           column   text  mode only;  they will not work  properly  while in
  278.           any  graphics  mode.   I recommend  specifying  this mode  at the
  279.           beginning  of your program with SCREEN 0: WIDTH 80.  VUDU is sure
  280.           to run fluently in this mode.  You can also experiment with WIDTH
  281.           40 but this is an unsupported VUDU mode.
  282.  
  283.           If  you  plan  to  run your  programs  exclusively  on monochrome
  284.           systems,  including  Hercules, the  video  paging feature  is not
  285.           available.   I will not go into depth on this subject since ample
  286.           information is available in your BASIC documentation. VUDU simply
  287.           checks  to  see  what  the  active video  page  is  and  does any
  288.           requested  reading  or writing  based on  that information.   For
  289.           example,  if you copy a screen  portion using SAVWIN while at the
  290.           default  active  page (page    0) then  switch  to page  1 (using
  291.           SCREEN,,1)  and restore  with RESWIN,  you could  then switch the
  292.           visual  page to view the newly replaced portion.  In essence, the
  293.           rules  are the  same as  QB's own  PRINT command.   If  a page is
  294.           active,  it gets written  to, and, like  reading a character from
  295.           the screen with the SCREEN function,  it gets read from as well.
  296.  
  297.           If  you  have a  CGA  card, VUDU  will  detect it's  presence and
  298.           automatically  check  the horizontal  retrace  and read  or write
  299.           during  that  interval.   That,  translated, means  VUDU provides
  300.           automatic  snow checking on any system  equipped with a CGA color
  301.           card;  all this is  transparent to the  programmer.  For details,
  302.           see the assembler source code listing.
  303.  
  304.  
  305.           _________________________________________________________________
  306.                                        GLOBALS
  307.           _________________________________________________________________
  308.  
  309.           Globals  are  a predefined  set  of variable  switches  which are
  310.           declared  in  VUDU.INC.    The  global  variables  allow  you  to
  311.           customize   aspects  of  the  commands'  actions.    The  globals
  312.           associated  with  the  commands,  if any,  are  explained  in the
  313.           following  command descriptions.  A  full listing and explanation
  314.           of the globals is given in the last section  of this document.
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.           VUDU 3.01                                                  Page 5
  336.  
  337.  
  338.           _________________________________________________________________
  339.           ATTRIB Function
  340.           _________________________________________________________________
  341.  
  342.           PURPOSE:  To calculate the attribute byte for screen colors.
  343.  
  344.           CALLING EXAMPLE:
  345.                     var% = ATTRIB(foregnd%, backgnd%)
  346.  
  347.           WHERE:    [foregnd] is the foreground color specified.
  348.  
  349.                     [backgnd] is the background color specified.
  350.  
  351.           RETURNS:  Attribute number
  352.  
  353.           DESCRIPTION:
  354.                     Converts specified colors to the respective attribute.
  355.  
  356.           GLOBALS:  Any color constants may be used.
  357.  
  358.           COMMENTS: A  color  attribute is  a  numeric representation  of a
  359.                     foreground/background color combination.  ATTRIB can be
  360.                     used  in the immediate window of the interactive editor
  361.                     to  find the  attribute of a foreground/background pair
  362.                     (  ie. ? ATTRIB(1,7) ). The numeric literal can then be
  363.                     used  in the  program as  an argument.   This decreases
  364.                     executable program size and execution time.
  365.  
  366.  
  367.           _________________________________________________________________
  368.           BARMENU Function
  369.           _________________________________________________________________
  370.  
  371.           PURPOSE:  Displays  a bar (pull down) menu and returns the user's
  372.                     choice.
  373.  
  374.           CALLING EXAMPLE:
  375.                     var$ = BARMENU(headers$(), Items$(),
  376.                                    MenuSlct%, ItemSlct%)
  377.  
  378.           WHERE:    [headers] is a single dimension string array containing
  379.                     the menu headers to display on the bar.
  380.                     
  381.                     [Items] is a two dimensional array which references:
  382.  
  383.                        (subscr1) Submenu number
  384.  
  385.                        (subscr2) The items which will be printed as
  386.                                  choices under the submenus.
  387.  
  388.                     [MenuSlct] holds the returned value of the menu
  389.                     selected.
  390.  
  391.                     [ItemSlct] holds the returned value of the item
  392.                     selected.
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.           VUDU 3.01                                                  Page 6
  402.  
  403.  
  404.           RETURNS:  The  ASCII character of the  key pressed upon exit from
  405.                     BARMENU in [var] (NOTE: BARMENU returned ASCII value in
  406.                     previous versions).  The number of the menu selected in
  407.                     [MenuSlct]   The  number   of  the   item  selected  in
  408.                     [ItemSlct]
  409.  
  410.           GLOBALS:  All window attribute globals
  411.                     All BarMenu attribute globals
  412.                     FirstLet  - Attribute of first letter of item line
  413.                     BarClear  - Do / do not clear the header bar on exit
  414.                     BarChar   - Bar filler character
  415.                     EscEnable - Enable escape keypress
  416.  
  417.           DESCRIPTION:
  418.                     The BARMENU function displays headers and submenus in a
  419.                     bar (pull down) menu format similar to QuickBasic's own
  420.                     menus.   Using cursor control keys, the user may select
  421.                     an  item  from  various  submenus.    The  choices  are
  422.                     hilighted  as they are moved to.  An alternative method
  423.                     of  moving  among  items  in a  submenu  is  the 'first
  424.                     letter'  feature.  Pressing the first letter of an item
  425.                     will  position the light bar on the next item beginning
  426.                     with  that  letter.    (The  color  of  this  letter is
  427.                     controlled  by  the  global  'FirstLet'.    The  filler
  428.                     character  between menu labelson  the bar is determined
  429.                     by the global 'BarChar'.)
  430.  
  431.                     The  arrays  containing the  headers  and items  may be
  432.                     loaded  by individual assignment  (most code effecient)
  433.                     or  you might  try DATA  statements and  then read them
  434.                     into the arrays.  For examples of both methods, see the
  435.                     'VUDEMO.BAS' program.
  436.  
  437.                     BARMENU  sizes all submenus to  enclose an area defined
  438.                     by the amount of non-blank items in that submenu (rows)
  439.                     and the width of the longest item.  All colors defining
  440.                     the windows used for the submenus must be predefined by
  441.                     DEFBAR  and DEFWIN. Use SETBAR  to display the inactive
  442.                     bar at row 1, column 1.
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.           VUDU 3.01                                                  Page 7
  468.  
  469.  
  470.           _________________________________________________________________
  471.           BRIDGE Statement
  472.           _________________________________________________________________
  473.  
  474.           PURPOSE:  To display a horizontal line spanning the interior of a
  475.                     window box and join the intersections with a 'T'
  476.                     fitting.
  477.  
  478.           CALLING EXAMPLE:
  479.                     BRIDGE row%, col1%, col2%, bor%
  480.  
  481.           WHERE:    [row] is the row to place the bridge on.
  482.  
  483.                     [col1] is the beginning column (left T character).
  484.  
  485.                     [col2] is the ending column (right T character).
  486.  
  487.                     [bor] is the border type (ILINE, HLINE, etc.).
  488.  
  489.           RETURNS:  Nothing.
  490.  
  491.           GLOBALS:  Border (if [bor] = 0).
  492.  
  493.           DESCRIPTION:
  494.                     BRIDGE  joins the left and right  edges of a window box
  495.                     with  a line.  If  [bor] = 0 then  the current value of
  496.                     the global [Border] is used.
  497.  
  498.           _________________________________________________________________
  499.           CLICK Function
  500.           _________________________________________________________________
  501.  
  502.           PURPOSE:  To return a character from the keyboard or from
  503.                     a mouse click.
  504.  
  505.           CALLING EXAMPLE:
  506.                     var$ = CLICK
  507.  
  508.           RETURNS:  The first pending keystroke or mouse button press
  509.                     or a null string ("") if none are pending.
  510.  
  511.           DESCRIPTION:
  512.                     CLICK functions the same as INKEY$ with the addition of
  513.                     detecting  mouse button  presses.   The left  and right
  514.                     buttons  are translated so that the LEFT button returns
  515.                     CR (CHR$(13)) and the RIGHT returns ESC (CHR$(27)).
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.           VUDU 3.01                                                  Page 8
  534.  
  535.  
  536.           _________________________________________________________________
  537.           CM Function
  538.           _________________________________________________________________
  539.  
  540.           PURPOSE:  To return the color corresponding to the current video
  541.                     mode. ColorVar if color, MonoVar if monochrome.
  542.  
  543.           CALLING EXAMPLE:
  544.                     var% = CM(ColorVar%, MonoVar%)
  545.  
  546.           WHERE:    [ColorVar] is the integer to be returned if system
  547.                     is color.
  548.  
  549.                     [MonoVar]  is the integer to be returned if system
  550.                     is monochrome.
  551.  
  552.           DESCRIPTION:
  553.                     CM  is  handy when  the video  type  is unknown  to the
  554.                     programmer.   The color of  choice may be customized to
  555.                     either color or monochrome systems.
  556.  
  557.  
  558.           _________________________________________________________________
  559.           COLMON Statement
  560.           _________________________________________________________________
  561.  
  562.           PURPOSE:  To translate color foreground/background schemes into
  563.                     legible monochrome color schemes.
  564.  
  565.           CALLING EXAMPLE:
  566.                     COLMON FGvar%, BGvar%
  567.  
  568.           WHERE:    [FGvar] is the foreground attribute.
  569.  
  570.                     [BGvar] is the background attribute.
  571.  
  572.           DESCRIPTION:
  573.                     COLMON  receives  two  attributes  assumed  to  be  the
  574.                     attributes  desired for color display.   It then checks
  575.                     to  see if the display  is in fact color.  If it is, no
  576.                     action  takes place.  If the display is monochrome, the
  577.                     colors are translated to make them as close as possible
  578.                     in  contrast to their color counterparts.  These values
  579.                     are returned in the passed variables.
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.           VUDU 3.01                                                  Page 9
  600.  
  601.  
  602.           _________________________________________________________________
  603.           DATIN Function
  604.           _________________________________________________________________
  605.  
  606.           PURPOSE:  Allow user input within a date field.
  607.  
  608.           CALLING EXAMPLE:
  609.                     var$ = DATIN(Daytype%)
  610.  
  611.           WHERE:    [var]  is  the string  variable  to receive  the return
  612.                     value (a date value or ESC).
  613.  
  614.                     [Daytype]  is the format of the date field.  See global
  615.                     constants at the end of this document.
  616.  
  617.           RETURNS:  The  date as a  string or ESC  (CHR$(27)) if the escape
  618.                     key was pressed.
  619.  
  620.           GLOBALS:  The  color of the field  is determined by variables set
  621.                     with VCOLOR.  These are Vfgnd and Vbkgnd. The constants
  622.                     for the date format are recognized (see below).
  623.  
  624.           DESCRIPTION:
  625.                     Calling  DATIN sets up an input field for date input at
  626.                     the  current cursor position.   The format of the field
  627.                     is  defined  by the  '[DayType]' argument.  (The global
  628.                     constants  for DayType are MMDDYY, MMDDYYYY, YYMMDD and
  629.                     DDMMYY.)   DATIN performs validity  checks on the month
  630.                     and day portions of the input and beeps if the user has
  631.                     entered an invalid date.  (A blank date,however, may be
  632.                     entered which returns all zeros.)  A date is considered
  633.                     invalid  if it is partial - containing blank spaces and
  634.                     numbers.
  635.  
  636.                     DATIN  does not clear the field before receiving input.
  637.                     This  is to allow the display  of a date value with the
  638.                     option of updating that value.
  639.  
  640.  
  641.           _________________________________________________________________
  642.           DEFBAR Statement
  643.           _________________________________________________________________
  644.  
  645.           PURPOSE:  Assign values to Bar Menu global variables.
  646.  
  647.           CALLING EXAMPLE:
  648.                     DEFBAR BFG%, BBG%, Bchar%, BCLR%
  649.  
  650.           WHERE:    [BFG]  and  [BBG]  are  the  foreground  and background
  651.                     colors of the bar respectively.
  652.  
  653.                     [Bchar]  is the  ASCII number  of the  filler character
  654.                     between the header labels (32 is default).
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.           VUDU 3.01                                                 Page 10
  666.  
  667.  
  668.                     [BCLR%]  is a flag  indicating whether or  not to clear
  669.                     the bar on exit.
  670.  
  671.           RETURNS:  Nothing
  672.  
  673.           GLOBALS:  BarFG, BarBG, BarChar and BarClear
  674.  
  675.           DESCRIPTION:
  676.                     DEFBAR  assigns values  to the  global variables listed
  677.                     above.   These  values will  be used  on all subsequent
  678.                     calls to BarMenu until changed.
  679.  
  680.  
  681.           _________________________________________________________________
  682.           DEFWIN Statement
  683.           _________________________________________________________________
  684.  
  685.           PURPOSE:  Assign values to window global variables.
  686.  
  687.           CALLING EXAMPLE:
  688.                     DEFWIN HedFG%, HedBG%, BorFG%, BorBG%,
  689.                            WinFG%, WinBG%, Border%, Shadow%
  690.  
  691.           WHERE:    [HedFG]  and [HedBG] are  the foreground and background
  692.                     colors of the window header label respectively.
  693.  
  694.                     [BorFG]  and [BorBG] are  the foreground and background
  695.                     colors of the window border.
  696.  
  697.                     [WinFG]  and [WinBG] are  the foreground and background
  698.                     colors of the window interior.
  699.  
  700.                     [Border]  is the border  type (PAIR, THIN,  etc.) to be
  701.                     used (see DECLARED CONSTANTS).
  702.  
  703.                     [Shadow]  is a flag indicating whether the window is to
  704.                     cast a shadow on the text beneath it.
  705.  
  706.           RETURNS:  Nothing.
  707.  
  708.           GLOBALS:  BorFG, BorBG, WinFG, WinBG, Border and Shadow.
  709.  
  710.           DESCRIPTION:
  711.                     DEFWIN  assigns values  to the  global variables listed
  712.                     above.  These  values will  be  used on  all subsequent
  713.                     calls  to any VUDU procedures  which include windows in
  714.                     their display.
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.           VUDU 3.01                                                 Page 11
  732.  
  733.  
  734.           _________________________________________________________________
  735.           FLUSHKEY Statement
  736.           _________________________________________________________________
  737.  
  738.           PURPOSE:  To clear the keyboard buffer of any waiting input.
  739.  
  740.           CALLING EXAMPLE:
  741.                     FLUSHKEY
  742.  
  743.           RETURNS:  Nothing
  744.  
  745.           DESCRIPTION:
  746.                     FLUSHKEY  clears  any  waiting  characters  out  of the
  747.                     keyboard buffer.
  748.  
  749.  
  750.           _________________________________________________________________
  751.           GETCH Function
  752.           _________________________________________________________________
  753.  
  754.           PURPOSE:  Get a character from the standard input.
  755.  
  756.           CALLING EXAMPLE:
  757.                     var$ = GETCH
  758.  
  759.           WHERE:    [var] is a string variable.
  760.  
  761.           RETURNS:  The character received.
  762.  
  763.           DESCRIPTION:
  764.                     GETCH reads a character from the standard input without
  765.                     echoing it to the screen.  GETCH will wait indefinitely
  766.                     for  input. GETCH successfully  traps two byte extended
  767.                     characters  and  stores them  as a  two byte  string in
  768.                     [var].    For  easy reference  to  two  byte (extended)
  769.                     characters, use the defined constants listed at the end
  770.                     of this document.
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.           VUDU 3.01                                                 Page 12
  798.  
  799.  
  800.           _________________________________________________________________
  801.           HILITE / HILITV Statements
  802.           _________________________________________________________________
  803.  
  804.           PURPOSE:  To  horizontally or vertically  change the attribute(s)
  805.                     of   text   on  the   screen  leaving   the  characters
  806.                     undisturbed.
  807.  
  808.           CALLING EXAMPLES:
  809.                     HILITE row%, col%, length%, attribute%
  810.                     HILITV row%, col%, length%, attribute%
  811.  
  812.           WHERE:    [row] and [col] are the row and column of first hilited
  813.                     character.
  814.  
  815.                     [length] (in characters) that the hilite is to extend.
  816.  
  817.                     [attribute] is the color to hilite ( fg+(bg*160) ).
  818.  
  819.           DESCRIPTION:
  820.                     HILITE  changes  the  color attribute  of  a horizontal
  821.                     group  of  characters while  HILITV changes  a vertical
  822.                     group.
  823.  
  824.           COMMENTS: The [attribute] may be calculated easily using the VUDU
  825.                     function  'Attrib'.  HILITE/V, like the other assembler
  826.                     routines  knows nothing of screen boundaries.  Although
  827.                     HILITE/V  will wrap around at the end of a row, the end
  828.                     of  the  screen is  just another  stretch of  memory to
  829.                     HILITE/V, producing unpredictable results..
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.           VUDU 3.01                                                 Page 13
  864.  
  865.  
  866.           _________________________________________________________________
  867.           INFIELD Function
  868.           _________________________________________________________________
  869.  
  870.           PURPOSE:  Get  user input from a limited  field on the screen and
  871.                     return the key pressed on exit.
  872.  
  873.           CALLING EXAMPLE:
  874.                     Var$ = INFIELD(Receiving$, FieldLen%)
  875.  
  876.           WHERE:    [Var] is a string variable holding the return value.
  877.  
  878.                     [Receiving] is the string which the user input will be
  879.                     returned in.
  880.  
  881.                     [Fieldlen] is the length of the field.
  882.  
  883.           RETURNS:  The ASCII value of the key pressed on exit.
  884.  
  885.           GLOBALS:  Vfgnd and Vbkgnd determine color of field (use VCOLOR
  886.                     to set them).
  887.  
  888.           DESCRIPTION:
  889.                     INFIELD   creates  a  field   with  limited  boundaries
  890.                     starting  at the current cursor position (use LOCATE to
  891.                     position  the cursor at the desired starting position).
  892.                     Normal  escape key pressed  are the Escape  key and the
  893.                     return  key.  You may specify that the page control and
  894.                     the  up and down cursor keys  will also cause an escape
  895.                     by  turning  on  the  global  switch  'ExtInfield'. The
  896.                     cursor  control keys within the  field are the left and
  897.                     right  arrow keys,  the home key  (beginning of field),
  898.                     the  end key (end of field),  the tab key (5 characters
  899.                     forward  of the  current position)  and shift  + tab (5
  900.                     characters  back). The cursor is  a block in overstrike
  901.                     mode and an underline in insert mode.
  902.  
  903.                     INFIELD  does  not  clear  the  field  before receiving
  904.                     input.   This is to allow the display of a string value
  905.                     with  the option of updating that  value.  If the first
  906.                     character  typed in a  field containing   data is not a
  907.                     cursor  control  key,  a  replacement  of  the  data is
  908.                     assumed and the remaining 'old' data is deleted.
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.           VUDU 3.01                                                 Page 14
  930.  
  931.  
  932.           _________________________________________________________________
  933.           ISMOUSE Function
  934.           _________________________________________________________________
  935.  
  936.           PURPOSE:  To initialize the mouse driver.
  937.  
  938.           CALLING EXAMPLE:
  939.                     var% = ISMOUSE
  940.  
  941.           RETURNS:  -1 (TRUE) if mouse installed, 0 (FALSE) otherwise
  942.  
  943.           GLOBALS:  Vmouse   is   TRUE   if   mouse   was   present  during
  944.                     initialization in VINIT.
  945.  
  946.           DESCRIPTION:
  947.                     ISMOUSE  initializes the mouse driver, if present. Upon
  948.                     initialization,  the cursor is hidden  and is placed in
  949.                     the  center of the  screen. ISMOUSE is  called in VINIT
  950.                     and,  under  normal circumstances,  need not  be called
  951.                     again.
  952.  
  953.  
  954.           _________________________________________________________________
  955.           MAKEMENU Function
  956.           _________________________________________________________________
  957.  
  958.           PURPOSE:  To  display a menu  on the screen  and return the users
  959.                     choice.
  960.  
  961.           CALLING EXAMPLE:
  962.                     var$ = MAKEMENU (row%, col%, MenuClear%,
  963.                                      MHeader$, Choices$(), ItemSelect%)
  964.  
  965.           WHERE:    [var]  is an  integer variable  to hold  the ASCII exit
  966.                     value (ESC or CR)
  967.  
  968.                     [row] is the top row of the menu.
  969.  
  970.                     [col] is the upper left column of the menu.
  971.  
  972.                     [MenuClear]  switches whether or not  to clear the menu
  973.                     upon exit.
  974.  
  975.                     [MHeader] is a label which will be placed at the top of
  976.                     the menu.
  977.  
  978.                     [Choices]  is a string array  containing the choices to
  979.                     be displayed in the menu window.
  980.  
  981.                     [ItemSelect] holds the number of the item chosen.
  982.  
  983.           RETURNS:  The  ASCII character pressed upon exit from MAKEMENU in
  984.                     [var] and the item chosen in [ItemSelect].
  985.  
  986.           GLOBALS:  All window attribute globals,  EscEnable.
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.           VUDU 3.01                                                 Page 15
  996.  
  997.  
  998.           DESCRIPTION:
  999.                     MAKEMENU  builds a  menu from  the items  passed to it.
  1000.                     The  size  of the  menu in  rows  is determined  by the
  1001.                     number of items passed.  Null strings passed at the end
  1002.                     of  the  [Choices] array  will not  be included  in the
  1003.                     menu.   The width in columns is determined by the width
  1004.                     of the longest [Choice].  A [Choice] may be highlighted
  1005.                     by  moving  to  it  using the  cursor  control  keys or
  1006.                     pressing  the first letter of  the choice (same letters
  1007.                     being  highlighted in sequential order from the current
  1008.                     position).  A choice is selected by either pressing the
  1009.                     Escape or Return keys.  The ASCII representation of the
  1010.                     character  is returned in [var] and the [Choice] number
  1011.                     is  returned in [ItemSelect] (even  if menu was Escaped
  1012.                     from).
  1013.  
  1014.  
  1015.           _________________________________________________________________
  1016.           MESSAGE Function
  1017.           _________________________________________________________________
  1018.  
  1019.           PURPOSE:  To display a windowed message with the option of user
  1020.                     response or time delay.
  1021.  
  1022.           CALLING EXAMPLE:
  1023.                     var$ = MESSAGE$ (Row%, Col%, MesHed$,
  1024.                                      Msg$(), Choice$, pause%, Msgclear%)
  1025.  
  1026.           WHERE:    [var]  is a string variable to hold the character which
  1027.                     was pressed on exit (if an exit condition was set up).
  1028.  
  1029.                     [row] is the top row of the message.
  1030.  
  1031.                     [col] is the upper left column of the message.
  1032.  
  1033.                     [MesHed]  is a label which will be placed at the top of
  1034.                     the menu.
  1035.  
  1036.                     [Msg()]  is a string array containing the message to be
  1037.                     printed inside the window.
  1038.  
  1039.                     [Choice] is a string array containing the choices which
  1040.                     will  allow the  user to exit.   If the  null string is
  1041.                     passed  here  the  message  will  display  for  [pause]
  1042.                     seconds.
  1043.  
  1044.                     [pause]   contains  a value  to wait  before ending the
  1045.                     display  of the message  window.  If  pause is zero and
  1046.                     [Choices]  contains  a  value  then  the  message  will
  1047.                     display   until  the  user  hits  a  key  contained  in
  1048.                     [Choices].
  1049.  
  1050.                     [Msgclear]  is a boolian  switch (YES/NO or TRUE/FALSE)
  1051.                     to  determine whether  or not the  message should clear
  1052.                     upon exit.
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.           VUDU 3.01                                                 Page 16
  1062.  
  1063.  
  1064.  
  1065.           RETURNS:  The  character key (ESC or CR)  pressed on exit or NULL
  1066.                     if  a  [pause]  value  was specified  and  ESC  was not
  1067.                     pressed.   Also returns the  row and/or col position of
  1068.                     the upper left coordinate if the respective parameter's
  1069.                     value  is zero.   (With  this command  you must  pass a
  1070.                     variable  if either of these parameters is zero; do not
  1071.                     pass a literal '0').
  1072.  
  1073.           GLOBALS:  All window attribute globals.
  1074.  
  1075.           DESCRIPTION:
  1076.                     MESSAGE  builds a  window from the  Msg$ passed defined
  1077.                     by  the size  of elements in  the array  (rows) and the
  1078.                     width   of   the   largest   line   (cols).     MESSAGE
  1079.                     appropriately   pads  spaces  around  the  message  for
  1080.                     ascetics.  See  the  parameter  descriptions  above for
  1081.                     details on the pause and user input options.
  1082.  
  1083.  
  1084.           _________________________________________________________________
  1085.           MONOVID Function
  1086.           _________________________________________________________________
  1087.  
  1088.           PURPOSE:  To return true if Monochrome video mode is active.
  1089.  
  1090.           CALLING EXAMPLE:
  1091.                     var% = MONOVID  or  IF MONOVID THEN [statement]
  1092.  
  1093.           RETURNS:  TRUE (-1) only if a monochrome video mode is active.
  1094.  
  1095.           DESCRIPTION:
  1096.                     MONOVID  is  invaluable when  writing  display programs
  1097.                     which   may  be  run  on  either  monochrome  or  color
  1098.                     hardware.  See also CM and COLMON.
  1099.  
  1100.  
  1101.           _________________________________________________________________
  1102.           MOUSEAREA Statement
  1103.           _________________________________________________________________
  1104.  
  1105.           PURPOSE:  To  set  the boundaries  in which  the mouse  cursor is
  1106.                     allowed to move.
  1107.  
  1108.           CALLING EXAMPLE:
  1109.                     MOUSEAREA row1%, col1%, row2%, col2%
  1110.  
  1111.           WHERE:    [row1  and  col1] are  the  upper left  row  and column
  1112.                     coordinates  and [row2  and col2]  are the  lower right
  1113.                     coordinates of the defined area.
  1114.  
  1115.           DESCRIPTION:
  1116.                     The default area for the mouse cursor to move is 1,1 to
  1117.                     25,80.   To limit the movement of the mouse cursor to a
  1118.                     specific  area on the  screen, call MOUSEAREA.   If the
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.           VUDU 3.01                                                 Page 17
  1128.  
  1129.  
  1130.                     cursor is outside of the area defined when MOUSEAREA is
  1131.                     called,  it will  be placed within  the new boundaries.
  1132.                     (If the cursor is not visible, call MOUSEON).
  1133.  
  1134.  
  1135.           _________________________________________________________________
  1136.           MOUSEOFF Statement
  1137.           _________________________________________________________________
  1138.  
  1139.           PURPOSE:  To turn off (hide) the mouse cursor.
  1140.  
  1141.           CALLING EXAMPLE:
  1142.                     MOUSEOFF
  1143.  
  1144.           DESCRIPTION:
  1145.                     The  cursor's  default  status is  hidden  upon calling
  1146.                     VINIT or ISMOUSE.
  1147.  
  1148.  
  1149.           _________________________________________________________________
  1150.           MOUSEON Statement
  1151.           _________________________________________________________________
  1152.  
  1153.           PURPOSE:  To turn on (show) the mouse cursor.
  1154.  
  1155.           CALLING EXAMPLE:
  1156.                     MOUSEON
  1157.  
  1158.           DESCRIPTION:
  1159.                     Call MOUSEON to show the mouse cursor.
  1160.  
  1161.  
  1162.           _________________________________________________________________
  1163.           MOUSEPOLL Function
  1164.           _________________________________________________________________
  1165.  
  1166.           PURPOSE:  To monitor mousebutton presses.
  1167.  
  1168.           CALLING EXAMPLE:
  1169.                     var% = MOUSEPOLL
  1170.  
  1171.           RETURNS:  1  if  left button  is pressed,  2  if right  button is
  1172.                     pressed,  0  otherwise (The  global constants  LEFT and
  1173.                     RIGHT are NOT compatible with these returned values).
  1174.  
  1175.           DESCRIPTION:
  1176.                     MOUSEPOLL  checks to see if any mouse buttons have been
  1177.                     pressed since the last call to MOUSEPOLL.
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.           VUDU 3.01                                                 Page 18
  1194.  
  1195.  
  1196.           _________________________________________________________________
  1197.           MOUSEXY Statement
  1198.           _________________________________________________________________
  1199.  
  1200.           PURPOSE:  To get the row/column coordinates of the mouse
  1201.                     cursor.
  1202.  
  1203.           CALLING EXAMPLE:
  1204.                     MouseXY row%, col%
  1205.  
  1206.           WHERE:    [row  and col] are the  returned row/col coordinates of
  1207.                     the mouse cursor.
  1208.  
  1209.           RETURNS:  Coordinates in [row] and [col]
  1210.  
  1211.           DESCRIPTION:
  1212.                     MOUSEXY  gets  the immediate  coordinates of  the mouse
  1213.                     cursor's row and column.
  1214.  
  1215.  
  1216.           _________________________________________________________________
  1217.           OPENWIN Statement
  1218.           _________________________________________________________________
  1219.  
  1220.           PURPOSE:  To  draw a window  at the specified  coordinates on the
  1221.                     screen.
  1222.  
  1223.           CALLING EXAMPLE:
  1224.                     OPENWIN LRow%, LCol%, RRow%, RCol%, header$
  1225.  
  1226.           WHERE:    [LRow]   and   [LCol]   are  the   upper   left  corner
  1227.                     coordinates.
  1228.  
  1229.                     [RRow]   and   [RCol]  are   the  lower   right  corner
  1230.                     coordinates.
  1231.  
  1232.                     [header] is a label to be printed on the top frame.
  1233.  
  1234.           RETURNS:  Nothing
  1235.  
  1236.           GLOBALS:  All window globals, LabelPos.
  1237.  
  1238.           DESCRIPTION:
  1239.                     OPENWIN  draws  a window  on the  screen using  the set
  1240.                     global attributes.
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.           VUDU 3.01                                                 Page 19
  1260.  
  1261.  
  1262.           _________________________________________________________________
  1263.           PRINTS / PRINTV Statement
  1264.           _________________________________________________________________
  1265.  
  1266.           PURPOSE:  An  alternative to  PRINT with  option to  overlay text
  1267.                     using  the existing attributes on  the screen.   PRINTS
  1268.                     displays in a horizontal position while PRINTV displays
  1269.                     vertically.
  1270.  
  1271.           CALLING EXAMPLE:
  1272.                     PRINTS StrVar$, row%, col%, attribute%
  1273.                     PRINTV StrVar$, row%, col%, attribute%
  1274.  
  1275.           WHERE:    [StrVar] is the string to be printed.
  1276.  
  1277.                     [row]  and  [col]  are  the  row  and  column  to begin
  1278.                     printing at.
  1279.  
  1280.                     [attribute]  is  the color  to  use when  printing. (If
  1281.                     attribute   is  '0'   then  the   string  is  displayed
  1282.                     translucently, using the attribute(s) already existing.
  1283.  
  1284.           DESCRIPTION:
  1285.                     [StrVar]  must be  a variable  length string,  a string
  1286.                     literal,  a variable length string element of an array,
  1287.                     or  a concatenation of  any combination of  these.  The
  1288.                     [attribute] specifies the color at tribute for printing
  1289.                     [StrVar].   ('0' (zero) attribute specifies translucent
  1290.                     string.)
  1291.  
  1292.  
  1293.           _________________________________________________________________
  1294.           RESCREEN Statement
  1295.           _________________________________________________________________
  1296.  
  1297.           PURPOSE:  Restores   screen  contents  of  a  screen  saved  with
  1298.                     SAVSCREEN.
  1299.  
  1300.           CALLING EXAMPLE:
  1301.                     RESCREEN StringVar$
  1302.  
  1303.           WHERE:    [StringVar]   is  a  string   variable  containing  the
  1304.                     contents of a screen saved with SAVSCREEN.  StrVar must
  1305.                     be a dynamic string variable.
  1306.  
  1307.           DESCRIPTION:
  1308.                     RESCREEN  will place the contents of [StringVar] on the
  1309.                     active video screen.
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.           VUDU 3.01                                                 Page 20
  1326.  
  1327.  
  1328.           _________________________________________________________________
  1329.           RESWIN Statement
  1330.           _________________________________________________________________
  1331.  
  1332.           PURPOSE:  Restores  a portion  of screen  from a  variable length
  1333.                     string which was buffered using SAVWIN.
  1334.  
  1335.           CALLING EXAMPLE:
  1336.                     RESWIN StringVar$, R1%, C1%)
  1337.  
  1338.           WHERE:    [StrVar]  is  a variable  length string  containing the
  1339.                     screen portion to restore.
  1340.  
  1341.                     [R1] is the integer number of upper left row to place.
  1342.  
  1343.                     [C1] is the integer number of upper left column.
  1344.  
  1345.           DESCRIPTION:
  1346.                     RESWIN  restores a portion  of a screen  which has been
  1347.                     buffered using the SAVEWIN command.  The screen portion
  1348.                     may be restored on any portion of the screen which will
  1349.                     allow for its size.  The string may also be restored on
  1350.                     an  active visual page other than  the one it was taken
  1351.                     from.
  1352.  
  1353.                     Caution:  If the buffered portion is repositioned to an
  1354.                     area in which it will not fit, portions of memory other
  1355.                     than  the visual  screen will  be overwritten producing
  1356.                     undesirable results.
  1357.  
  1358.  
  1359.           _________________________________________________________________
  1360.           SAVSCREEN Statement
  1361.           _________________________________________________________________
  1362.  
  1363.           PURPOSE:  To save the screen contents to a string variable.
  1364.  
  1365.           CALLING EXAMPLE:
  1366.                     SAVSCREEN StrVar$
  1367.  
  1368.           WHERE:    [StrVar]  is  a dynamic  string  variable in  which the
  1369.                     contents of the screen will be stored.
  1370.  
  1371.           RETURNS:  Contents  of the  screen in  [StrVar].   These contents
  1372.                     should only be restored using RESCREEN.
  1373.  
  1374.           DESCRIPTION:
  1375.                     SAVESCREEN  sizes the dynamic string variable passed to
  1376.                     a  length of 4000 bytes (2000 chars + 2000 attributes).
  1377.                     The contents are not compatible with RESWIN.
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.           VUDU 3.01                                                 Page 21
  1392.  
  1393.  
  1394.           _________________________________________________________________
  1395.           SAVWIN Statement
  1396.           _________________________________________________________________
  1397.  
  1398.           PURPOSE:  To save a portion of the screen to a string variable.
  1399.  
  1400.           CALLING EXAMPLE:
  1401.                     SAVWIN StrVar$, LRow%, LCol%, RRow%, RCol%
  1402.  
  1403.           WHERE:    [StrVar]  is a  dynamic string  variable to  serve as a
  1404.                     buffer for the screen portion contents.
  1405.  
  1406.                     [LRow] and [LCol] are the upper left corner coordinates
  1407.                     of the portion to save.
  1408.  
  1409.                     [RRow]   and   [RCol]  are   the  lower   right  corner
  1410.                     coordinates of the portion to save.
  1411.  
  1412.           RETURNS:  The contents of the specified portion in [StrVar].
  1413.  
  1414.           DESCRIPTION:
  1415.                     SAVWIN  saves a  specified portion  of the  screen to a
  1416.                     string  variable.   The  portion  may then  be restored
  1417.                     using  RESWIN.   Strings  containing  information saved
  1418.                     which  was buffered by SAVWIN may not be restored using
  1419.                     RESCREEN.
  1420.  
  1421.  
  1422.           _________________________________________________________________
  1423.           SCROLL Statement
  1424.           _________________________________________________________________
  1425.  
  1426.           PURPOSE:  To  scroll a section  or all of  the screen contents in
  1427.                     any horizontal or vertical direction.
  1428.  
  1429.           CALLING EXAMPLE:
  1430.                     SCROLL lr%, lc%, rr%, rc%, direction%
  1431.  
  1432.           WHERE:    [lr]  and [lc] are  the coordinates for  the upper left
  1433.                     corner of the region to scroll
  1434.  
  1435.                     [rr] and [rc] are the lower right corner coordinates.
  1436.  
  1437.                     [direction] is the direction (UP, DOWN, LEFT, RIGHT) to
  1438.                     scroll this region.
  1439.  
  1440.           GLOBALS:  ScrollAttrib  - color attribute of  new line created by
  1441.                     the scroll.
  1442.  
  1443.           DESCRIPTION:
  1444.                     SCROLL  moves  the region  specified one  column (LEFT,
  1445.                     RIGHT)   or  one   row  (UP,   DOWN)  in   the  desired
  1446.                     [direction],  thus leaving  a blank  line of  the color
  1447.                     [ScrollAttrib].
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.           VUDU 3.01                                                 Page 22
  1458.  
  1459.  
  1460.           _________________________________________________________________
  1461.           SCROLLMENU Function
  1462.           _________________________________________________________________
  1463.  
  1464.           PURPOSE:  To  display a window  of multiple choices  in a limited
  1465.                     region of the screen, scrolling up and down as needed.
  1466.  
  1467.           CALLING EXAMPLE:
  1468.                     var$ = SCROLLMENU (LRow%, LCol%, Brow%, SclSav%,
  1469.                                        items$(), header$, Choice%)
  1470.  
  1471.           WHERE:    [var] is a variable to receive the exit ASCII value.
  1472.  
  1473.                     [LRow] and [Lcol] is the upper left row/col coordinate.
  1474.  
  1475.                     [Brow] specifies the bottom of the displayed window.
  1476.  
  1477.                     [SclSav]  is a  logical flag indicating  whether or not
  1478.                     the screen underneath should be restored upon exit.
  1479.  
  1480.                     [Items]   is  a   string  array   containing  the  item
  1481.                     descriptions to be displayed in the scrolling window.
  1482.  
  1483.                     [header]  is a label to be printed on the top center of
  1484.                     the scrolling window.
  1485.  
  1486.                     [Choice] is the item number chosen.
  1487.  
  1488.           RETURNS:  The value (CR or ESC) of the key pressed on exit.
  1489.                     The item number in [Choice].
  1490.  
  1491.           DESCRIPTION:
  1492.                     SCROLLMENU  sets  up  a scrolling  window  of  a length
  1493.                     determined   by  the  parameters  passed  and  a  width
  1494.                     determined   by  the  width  of  the  longest  item(s).
  1495.                     SCROLLMENU  allows  many  items to  be  displayed  in a
  1496.                     limited  screen  space.    All  the  vertical  keys are
  1497.                     supported including PgUp and PgDn.  A selection is made
  1498.                     by  moving  the hilite  bar onto  the desired  item and
  1499.                     pressing  Return  (pressing  Esc will  also  return the
  1500.                     current item hilited in [Choice])
  1501.  
  1502.  
  1503.           _________________________________________________________________
  1504.           SETBAR Statement
  1505.           _________________________________________________________________
  1506.  
  1507.           PURPOSE:  To  display the  inactive menu  bar that  will later be
  1508.                     used in a BARMENU call.
  1509.  
  1510.           CALLING EXAMPLE:
  1511.                     SETBAR MenuLine$()
  1512.  
  1513.                     WHERE:    [MenuLine] is the  list of menu headings that
  1514.                     are to be used when calling BARMENU.
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.           VUDU 3.01                                                 Page 23
  1524.  
  1525.  
  1526.  
  1527.           DESCRIPTION:
  1528.                     SETBAR  allows an inactive bar to be displayed when the
  1529.                     barmenu  is not in  use.  When  the BARMENU function is
  1530.                     called,  BARMENU  will  activate  the  bar  that SETBAR
  1531.                     displayed.    This  is  only  an  option,  however. You
  1532.                     needn't  use SETBAR  first since   BARMENU will display
  1533.                     it's own bar if SETBAR has not.
  1534.  
  1535.  
  1536.           _________________________________________________________________
  1537.           SETMOUSE Statement
  1538.           _________________________________________________________________
  1539.  
  1540.           PURPOSE:  To set the row/column coordinates of the mouse
  1541.                     cursor.
  1542.  
  1543.           CALLING EXAMPLE:
  1544.                     SETMOUSE row%, col%
  1545.  
  1546.           WHERE:    [row  and col] are the row/col coordinates to place the
  1547.                     mouse cursor at.
  1548.  
  1549.           DESCRIPTION:
  1550.                     SETMOUSE  repositions  the  mouse  cursor  to  the  new
  1551.                     coordinates specified in [row] and [col].
  1552.  
  1553.  
  1554.           _________________________________________________________________
  1555.           VCLS Statement
  1556.           _________________________________________________________________
  1557.  
  1558.           PURPOSE:  To  clear  a  portion  of the  screen  to  spaces  of a
  1559.                     designated color.
  1560.  
  1561.           CALLING EXAMPLE:
  1562.                     VCLS row1%, col1%, row2%, col2%, attr%
  1563.  
  1564.           WHERE:    [row1] and [col1] are the upper left coordinates of the
  1565.                     screen portion to clear.
  1566.  
  1567.                     [row2]  and [col2]  are lower right  coordinates of the
  1568.                     portion.
  1569.  
  1570.                     [attr] is the color attribute to clear the portion to.
  1571.  
  1572.           DESCRIPTION:
  1573.                     VCLS  clears the  designated portion  of the  screen to
  1574.                     spaces of the specified color attribute.
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.           VUDU 3.01                                                 Page 24
  1590.  
  1591.  
  1592.           _________________________________________________________________
  1593.           VCOLOR Statement
  1594.           _________________________________________________________________
  1595.  
  1596.           PURPOSE:  To  define  the  colors for  field  input  (INFIELD and
  1597.                     DATIN).
  1598.  
  1599.           CALLING EXAMPLE:
  1600.                     VCOLOR fgcolor%, bgcolor%
  1601.  
  1602.           WHERE:    [fgcolor] is the integer expression which specifies the
  1603.                     foreground color
  1604.  
  1605.                     [bgcolor] is the integer expression which specifies the
  1606.                     background color
  1607.  
  1608.           GLOBALS:  Vfgnd and Vbkgnd
  1609.  
  1610.           DESCRIPTION:
  1611.                     VCOLOR sets the global variables Vfgnd and Vbkgnd which
  1612.                     defines the colors of input fields.
  1613.  
  1614.  
  1615.           _________________________________________________________________
  1616.           VIDCARD Function
  1617.           _________________________________________________________________
  1618.  
  1619.           PURPOSE:  To determine the primary video card.
  1620.  
  1621.           CALLING EXAMPLE:
  1622.                     var% = VIDCARD
  1623.  
  1624.           RETURNS:  A value corresponding to the video card detected.
  1625.                     (These values are declared constants.)
  1626.  
  1627.                     1 = MONO   2 = CGA   3 = EGA   4 = VGA
  1628.  
  1629.           DESCRIPTION:
  1630.                     The  VIDCARD  function  returns a  value  which  may be
  1631.                     compared using the declared constants listed above.
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.           VUDU 3.01                                                 Page 25
  1656.  
  1657.  
  1658.           _________________________________________________________________
  1659.           VINIT Statement
  1660.           _________________________________________________________________
  1661.  
  1662.           PURPOSE:  To declare global defaults.
  1663.  
  1664.           CALLING EXAMPLE:
  1665.                     VINIT
  1666.  
  1667.           RETURNS:  Nothing
  1668.  
  1669.           DESCRIPTION:
  1670.                     VINIT  must be  called before  using any  statements or
  1671.                     variables  included in the VUDU  library.  VINIT may be
  1672.                     called  subsequently  at any  time  in your  program to
  1673.                     reset  all  VUDU  global  variables  to  their  default
  1674.                     values.
  1675.  
  1676.  
  1677.           _________________________________________________________________
  1678.           VSLEEP Statement
  1679.           _________________________________________________________________
  1680.  
  1681.           PURPOSE:  To  suspend program execution  until a specified period
  1682.                     of  time has elapsed  or a keypress  or mouse click are
  1683.                     encountered.
  1684.  
  1685.           CALLING EXAMPLE:
  1686.                     VSLEEP seconds%
  1687.  
  1688.           WHERE:    [seconds] is the length of time, in seconds, to suspend
  1689.                     program execution.
  1690.  
  1691.           RETURNS:  Nothing
  1692.  
  1693.           DESCRIPTION:
  1694.                     VSLEEP  suspends  program execution  for the  number of
  1695.                     seconds  specified unless a  key is pressed  or a mouse
  1696.                     button is clicked.  If the parameter is 0, VSLEEP waits
  1697.                     indefinitely  for  a  keypress  or  mouse  click.   The
  1698.                     presence  of  the  mouse  need  not  be  checked before
  1699.                     calling VSLEEP.
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.           VUDU 3.01                                                 Page 26
  1722.  
  1723.  
  1724.           _________________________________________________________________
  1725.                                  DECLARED CONSTANTS
  1726.           _________________________________________________________________
  1727.  
  1728.           The   following  are  global  constants   declared  in  the  file
  1729.           'VUDU.INC'.   These  named constants may  be used interchangeably
  1730.           with their actual values.  The descriptions are formatted:
  1731.  
  1732.                        CONSTNAME = REAL_VALUE    - DESCRIPTION
  1733.  
  1734.  
  1735.                                  WINDOW BORDER TYPES
  1736.                 (use these when specifying window border attributes):
  1737.  
  1738.           NONE  = 0  - border consists of spaces
  1739.           THIN  = 1  - single line all four sides
  1740.           PAIR  = 2  - double line all four sides
  1741.           ILINE = 3  - horizontal lines are double, vertical are single
  1742.           HLINE = 4  - horizontal lines are single, vertical are double
  1743.           THICK = 5  - all borders are solid graphic character
  1744.  
  1745.  
  1746.                                   COLOR ATTRIBUTES
  1747.                 ( Example Use:  COLOR WHT, BLK;  ATTRIB(YEL+BRITE, BLU) )
  1748.  
  1749.           BLK = 0      - Black
  1750.           BLU = 1      - Blue
  1751.           GRN = 2      - Green
  1752.           CYN = 3      - Cyan
  1753.           RED = 4      - Red
  1754.           MAG = 5      - Magenta
  1755.           YEL = 6      - Brown/Yellow (depending on monitor)
  1756.           WHT = 7      - White
  1757.           BRITE = 8    - Add this for bright color (foreground only)
  1758.           FLASH = 16   - Add this for flashing color (foreground only)
  1759.  
  1760.  
  1761.                    LABEL POSITION                VIDEO CARD TYPES
  1762.                      LEFT   = 0                      MONO = 1
  1763.                      RIGHT  = 1                      CGA  = 2
  1764.                      UP     = 2                      EGA  = 3
  1765.                      DOWN   = 3                      VGA  = 4
  1766.                      CENTER = 4
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.           VUDU 3.01                                                 Page 27
  1788.  
  1789.  
  1790.                       CHARACTER CONSTANTS AND PSEUDO-CONSTANTS
  1791.  
  1792.           CR      = CHR$(13)     - Carriage Return / Return Key
  1793.           ESC     = CHR$(27)     - Escape Character / Key
  1794.           NULL    = CHR$(0)      - Null Character
  1795.           PgUp    = NULL + "I"   - Page Up Key
  1796.           PgDn    = NULL + "Q"   - Page Down Key
  1797.           UpKey   = NULL + "H"   - Cursor Up Key
  1798.           DnKey   = NULL + "P"   - Cursor Down Key
  1799.           LKey    = NULL + "K"   - Cursor Left Key
  1800.           RKey    = NULL + "M"   - Cursor Right Key
  1801.           Ins     = NULL + "R"   - Insert Key
  1802.           Del     = NULL + "S"   - Delete Key
  1803.           HomeKey = NULL + "G"   - Cursor Home Key
  1804.           EndKey  = NULL + "O"   - Cursor End Key
  1805.  
  1806.  
  1807.                                    DATIN CONSTANTS
  1808.  
  1809.                MMDDYY = 0    MMDDYYYY = 1    YYMMDD = 2    DDMMYY = 3
  1810.  
  1811.  
  1812.                                   BOOLEAN CONSTANTS
  1813.  
  1814.               YES = -1    NO = NOT YES     TRUE = YES  FALSE = NO
  1815.  
  1816.  
  1817.           _________________________________________________________________
  1818.                                   GLOBAL VARIABLES
  1819.           _________________________________________________________________
  1820.  
  1821.                            All globals are of type INTEGER
  1822.                    ([bracketed] expression denotes default value)
  1823.  
  1824.           INPUT FIELD:
  1825.           Vfgnd        - color of field foreground
  1826.           Vbkgnd       - color of field background
  1827.  
  1828.           WINDOW CONTROL:
  1829.           HedFG        - color of header's foreground [7]
  1830.           HedBG        - color of header's background [0]
  1831.           BorFG        - color of border's foreground [7]
  1832.           BorBG        - color of border's background [0]
  1833.           WinFG        - color of window interior foreground [7]
  1834.           WinBG        - color of window interior background [0]
  1835.           Border       - denotes border pattern (see WINDOW
  1836.                          BORDER TYPES above) [THIN]
  1837.           Shadow       - logical switch (do/do not draw shadow) [NO]
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.           VUDU 3.01                                                 Page 28
  1854.  
  1855.  
  1856.           BARMENU CONTROL:
  1857.           BarFG         - foreground color of barmenu labels [7]
  1858.           BarBG         - background color of barmenu labels [0]
  1859.           BarChar       - ASCII number of filler character between
  1860.                           labels on bar [32 (spaces)]
  1861.           BarClear      - logical switch (remove bar when exiting from
  1862.                           BARMENU/do not remove bar)
  1863.  
  1864.           OTHER:
  1865.           ExtInfield    - logical switch to allow/disallow exit from
  1866.                           INFIELD with an extended scancode keypress (e.i.
  1867.                           UpKey, HomeKey, etc.) [NO (not allowed)]
  1868.           EscEnabled    - logical switch to allow/disallow exit from
  1869.                           from menus with an ESC keypress. [YES (allow)]
  1870.                           UpKey, HomeKey, etc.) [NO (not allowed)]
  1871.           FirstLet      - controls foreground color attribute of menu
  1872.                           item's first letter [7 (White)]
  1873.           LabelPos      - controls label position on top of a window
  1874.                           or menu (see constants above) [CENTER]
  1875.           ScrollAttrib  - controls the color of the blank space left by
  1876.                           a scroll [WHITE on BLACK]
  1877.           Vmouse        - set in VINIT.  Is -1 (TRUE) if mouse was present
  1878.                           during VINIT, 0 (FALSE) otherwise.
  1879.  
  1880.  
  1881.                  The following chart is provided for your reference.
  1882.  
  1883.           - - - - - - - - - AVAILABLE COLORS: MONOCHROME  - - - - - - - - -
  1884.           -    Effect                    Foreground           Background  -
  1885.           - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1886.           -    Normal (white on black)        7                    0      -
  1887.           -    Reverse (black on white)       0                    7      -
  1888.           -    Invisible (black on black)     0                    0      -
  1889.           -    Underlining                    1                    0      -
  1890.           -    High Intensity             add 8                no change  -
  1891.           -    Blinking                   add 16               no change  -
  1892.           - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.